The present invention generally relates to generating advisory reports in response to detecting certain conditions arising within a computing environment, and more specifically relates to generating a message with customizable content in response to detecting a particular condition arising during operation of a software program.
Modern computer application programs, such as word processors, frequently include alert messaging systems that display dialog boxes, or windows, containing alert messages. These alert messages, or alerts, are utilized to inform the user that an error condition has been detected within the software program. Alerts are designed to assist users in resolving error conditions by conveying relevant information to the user. For example, in a typical word processor, a user trying to print a document to an unavailable printer will receive an alert in the form of an error message, such as xe2x80x9cCannot Print Due to a Problem with the Current Printer Setupxe2x80x9d.
Prior alert messaging systems generate alert messages containing a limited set of information intended to be useful for a user. The alert messages are typically linked to a set of predetermined events or conditions. However, the information displayed by a particular alert is not always directly linked to the underlying condition. Alert messages that are obscure, generic, or non-applicable to the particular event or condition that caused a display of the message can confuse users. Rather than presenting the user with helpful advice, these generic alerts can be counterproductive because users are often misguided by the obscure information presented by the advisory notice.
In addition, the generic alert message is statically linked into the software program. In other words, the content of the alert is defined by the software development team prior to a release of the software program, and this content can not be edited or updated without a subsequent re-release of the software product. Thus, the alert message cannot be customized to meet the developing needs of the users. For instance, an error condition giving rise to the generic alert, xe2x80x9cContact Your Administratorxe2x80x9d, can not be modified by the software owner to include a phone number or e-mail address of the local administrator.
Prior alert messaging systems also fail to support the tracking of incidences of advisory-related conditions or events. Nevertheless, this incident tracking information is useful to both the local system administrator and the computer application developer because this data supports a historical analysis of the conditions resulting in the generation of alerts. Only a user viewing the alert knows that an event, such as an error condition, has arisen during a program session. Thus, the local administrator and software developer cannot take steps to remedy an obvious error condition without first being notified by the user. However, notification by the user can be a time consuming and unfruitful process. For example, since a call to the local or software developer helpdesk can be costly and/or prolonged by extensive wait times, the user may not report the incident. Even where the user notifies the helpdesk, there is no guarantee the user will remember the exact alert message or the condition that resulted in the generation of the alert.
This is especially inefficient for administered computing environments, such as a large corporate organization, where multiple users utilize the same network and network devices. For instance, if thirty users on the same floor see a xe2x80x9cPrinter Not Respondingxe2x80x9d message, it is likely that the printer on that floor is down. However, the system administrator remains unaware of the situation until he is informed of the problem by one of the users. Moreover, the system administrator may receive redundant calls concerning the same error, such as multiple calls or electronic mail messages concerning an unresponsive network printer. Valuable time and resources may be wasted tracing and handling multiple incidences of the identical problem.
Similarly, the software development team for the software program remains unaware of recurrent conditions, such as inadvertent errors resulting in generation of an error message. Prior to a release of the software program, the software development may believe that an error condition rarely occurs, while, subsequent widescale use of the software program proves that the error condition may in fact occur with great frequency. Thus, certain xe2x80x9cbugsxe2x80x9d or defects within the software program may go uncorrected by the software developer in the absence of feedback or historical usage data from users.
One prior alert messaging system by REAL AUDIO attempts to resolve these problems by providing the user with access to supplemental information about the error condition. The system displays a standard dialog box that includes an additional button. The additional button can be selected by the user to open a Web page hosted by a central Internet site containing a generic list of all errors. Each error is accompanied by supplemental fixed information, which the user can access by searching for their specific error. A third party, such as a system administrator responsible for multiple local users of the xe2x80x9cREAL AUDIOxe2x80x9d software, does not control or have access to the generic information maintained at this Internet site. In other words, a local user can not control the link or the content maintained at this central information source.
While the xe2x80x9cREAL AUDIOxe2x80x9d alert messaging system provides additional alert information to the user, the system remains too inflexible to satisfy the other problems with existing alert systems. For example, alerts in the xe2x80x9cREAL AUDIOxe2x80x9d system remain statically linked to the software program, making customization impossible without the re-release of the software product. In addition, while the xe2x80x9cREAL AUDIOxe2x80x9d system provides some general tracking information (i. e., overall number of errors), it does not provide tracking of specific errors. Thus, system administrators remain unable to remedy a problem for a particular error condition without user notification.
In view of the foregoing, there exists a need for a customizable alert messaging system that provides specific and current information about conditions or events. This customizable alert messaging system should enable a local system administrator to efficiently track alert incidences while providing the flexibility of varying the supplemental information available to multiple users within the computing environment.
The present invention is generally directed to customizing the content of messages that are conveyed to a user within a computing environment. The present invention provides a mechanism for generating a customizable message, also referred to as an alert, in response to detecting a predetermined condition, such as an error condition or a user prompt condition, arising during operation of a software program module. For example, an alert message is typically generated as a modal dialog by an application program as a result of the occurrence of a predetermined condition. This alert serves to advise the user of the software program about the occurrence of a condition, such as an error condition, associated with an operational aspect of the computing environment.
Prior advisory message systems have generated standard alert messages, typically error condition messages within a dialog, which were statically linked to the application. These fixed messages were composed during the development of the software program and could not be modified by the user to meet particular needs. For example, a large organization that utilizes shared spreadsheet workbooks that do not handle certain features could not customize a standard error message to refer to their particular business processes. In contrast, the present invention provides an alert message having customizable content to support the presentation of information that can be directly related to the condition that caused the generation of the alert message. Communication between a user and the software program module is facilitated by displaying a customizable alert, also described as an extendable alert or notice, in response to detecting a predetermined condition.
For one aspect of the present invention, the customizable alert can be implemented by a user interface item, such as a dialog box or a balloon, containing a control object, such as a button, a hyperlink, a graphical item, or additional text. Focusing on the representative example of a modified dialog box containing an information message and one or more buttons, this type of customizable alert can enhance standard messages by providing the capability to select the button and to link to further information maintained at a separate information source. For example, the button, when selected by the user, can launch a link to an external, administerable information source, such as a Web page residing on a remote server. In addition, the button may also be customized to display useful textual information or a readily recognizable graphical item, such as an icon, to prompt the user to access this supplemental information.
By providing this additional information to the user, the present invention can support the presentation of up-to-date, locally specific information, as well as support effective tracking of selected conditions, such as error conditions. For example, a system administrator in a corporate computing environment can customize a standard alert dialog to include a hyperlink to a Web page that advises users of a problem and the approximate time to its resolution. The administrator also can track the frequency of occurrence of particular errors by noting the number of hits upon Web pages containing information regarding those conditions.
A customized alert can be generated in response to a report of the occurrence of an event or condition, which is typically generated by the underlying software program module. A unique identifier, such as an internal numerical identification or string, can be assigned to each known condition. In response to detection of a known condition, the unique identifier and standard fixed information corresponding to this condition can be located by the software program module to support the generation of an alert message.
For one aspect of the present invention, a two-prong inquiry can be conducted to determine whether the customizable alert feature of the software program module is enabled. First, a known database, such as the operating system registry, is checked for the presence of a base uniform resource locator URL. The base URL is normally fixed by the system administrator to link to a local administerable server. In the event that the base URL is present, a determination is made whether a browser function, such as Microsoft""s xe2x80x9cINTERNET EXPLORERxe2x80x9d browser, has been installed within the user""s computing environment. If the browser program is installed, the two-prong criteria are satisfied and the customizable alert feature function is enabled. Otherwise, a conventional alert message containing fixed content is generated by the software program module for presentation to the user.
In the event that both conditions have been met, the database maintained in memory, such as the application-specific portion of the registry, is examined for a value corresponding to the unique identifier. A portion of the data defined by this value can determine the custom information, if any, to be displayed by the control object, i.e., the button, of the alert message. In the event that the value does not exist in the database, the particular condition is not represented by a custom alert. Consequently, a conventional alert message containing fixed content is generated by the software program module for presentation to the user.
However, if the value exists as an entry in the database, then an alert containing at least one control object, such as a button or a hyperlink that, when enabled, provides a link to a Web page located at a remote server, will be displayed to the user. The content displayed by the face of the control object typically depends upon whether the data for the value corresponding to the unique identifier contains (1) an invalid or an empty data string or (2) a valid, non-empty data string. In response to an invalid or empty data string, a custom alert message is displayed with the control object displaying default data. In response to a valid, non-empty string, a custom alert message is displayed with the control object displaying the data defined by the non-empty data string. Thus, a system administrator may customize the control object by editing the data for the value that corresponds to a particular unique identifier.
In response to the user""s selection of the control object, a URL can be constructed by appending the unique identifier onto the base URL. Subsequently, a system call initiates the local browser program to find the site of the constructed URL and to present the information published at that separate site.
The various aspects of the present invention may be more clearly understood and appreciated from a review of the following detailed description of the disclosed embodiments and by reference to the appended drawings and claims.